package com.youliao.java;

import org.junit.Test;

import javax.tools.JavaCompiler;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Author Dali
 * @Date 2021/5/1 15:55
 * @Version 1.0
 * @Description
 */
public class DateTimeTest {
    @Test
    public void test1() {
        Date date1 = new Date();
        System.out.println(date1);
        System.out.println(date1.toString());
        System.out.println(date1.toInstant());
    }


    /**
     * SimpleDateFormat的使用: SimpLeDateFormat对 日期Date类的格式化和解析
     * 1.两个操作:
     * 1.1格式化:日期--->字符串
     * 1.2解析:格式化的逆过程，字符串--->日期
     * 2. SimpleDateFormat的实例化
     */
    @Test
    public void testSimpleDateFormat() throws ParseException {
        //实例化SimpleDateFormat: 默认的构造器
        SimpleDateFormat sdf = new SimpleDateFormat();
        //1、格式化日期   日期--->字符串
        Date date = new Date();
//        System.out.println(date);   //Sat May 01 16:15:39 CST 2021
        String format = sdf.format(date);
        System.out.println(format);     //21-5-1 下午4:17

        //2、解析：格式化的逆过程，字符串--->日期
        String str = "21-5-1 下午4:17";
        Date date1 = sdf.parse(str);
        System.out.println(date1);  //Sat May 01 16:17:00 CST 2021


        //****************************************
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //格式化
        String format1 = sdf1.format(date);
        System.out.println(format1);    //2021-05-01 16:27:23

        //解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现),
        //否则，拋异常
        Date date2 = sdf1.parse("2021-05-01 16:27:23");
        System.out.println(date2);      //Sat May 01 16:27:23 CST 2021

    }

    // 练习一:字符串"2021-05-01"转换为java. sqL. Date，
    @Test
    public void timeFormatConversion() throws ParseException {
        String birth = "2021-05-01";
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf1.parse(birth);
//        System.out.println(date);       //Sat May 01 00:00:00 CST 2021   Util下的时间格式
        java.sql.Date birthDate = new java.sql.Date(date.getTime());
        System.out.println(birthDate);      //2021-05-01
    }

}
